<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>从远程集群重新索引 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'reindex-upgrade-remote.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/reindex-upgrade-remote.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/reindex-upgrade-remote.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/reindex-upgrade-remote.html" rel="nofollow" target="_blank">../en/reindex-upgrade-remote.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup-upgrade.html">升级Elasticsearch</a></span>
»
<span class="breadcrumb-link"><a href="reindex-upgrade.html">在升级前重新索引</a></span>
»

<span class="breadcrumb-node">从远程集群重新索引</span>
</div>
<div class="navheader">
<span class="prev">
<a href="reindex-upgrade-inplace.html">« 原地重新索引</a>
</span>
<span class="next">
<a href="search-your-data.html">搜索你的数据 »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="reindex-upgrade-remote"></a>从远程集群重新索引 (Reindex from a remote cluster)
</h2>
</div></div></div>
<p>
可以使用 <a class="xref" href="docs-reindex.html#reindex-from-remote" title="Reindex from remote">从远程重新索引</a> 将索引从旧集群迁移到新的 7.7.1 集群。

这使你能够在不中断服务的情况下从 6.8 之前的集群迁移到 7.7.1。
</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>
Elasticsearch 提供向后兼容性支持，使索引可以从以前的主要版本升级到当前的主要版本。

跳过主要版本意味着你必须自己解决任何一个向后兼容性的问题。
</p>
<p>
Elasticsearch 不支持跨主要版本的向前兼容性。

例如，不能从 7.x 集群重新索引到 6.x 集群。
</p>
<p>
如果你使用了机器学习功能，并且正在从 6.5 或更低版本的集群中迁移索引，则作业和 数据馈送(datafeed) 配置信息不会存储在索引中。

必须在新集群中重新创建机器学习作业。

如果是从 6.6 或更高版本的集群迁移，最好暂时停止与机器学习工作和数据馈送(datafeed)相关的任务，以防止不同的机器学习索引之间的不一致，因为索引是在略微不同的时间索引的。  

使用 <a class="xref" href="ml-set-upgrade-mode.html" title="Set upgrade mode API">设置升级模式(set upgrade mode) API</a> 或 <a href="https://www.elastic.co/guide/en/machine-learning/7.7/stopping-ml.html" class="ulink" target="_top">停止所有数据馈送并关闭所有机器学习作业</a>。
</p>
</div>
</div>
<p>迁移索引的操作步骤：</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<p>
设置一个新的 7.7.1 集群，并将现有集群添加到 <code class="literal">elasticsearch.yml</code> 中的 <code class="literal">reindex.remote.whitelist</code>。
</p>
<div class="pre_wrapper lang-yaml">
<pre class="programlisting prettyprint lang-yaml">reindex.remote.whitelist: oldhost:9200</pre>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>
新集群不必一开始就完全横向扩展。
当你迁移索引并将负载转移到新集群时，可以向新集群添加节点，也可以从旧集群中删除节点。
</p>
</div>
</div>
</li>
<li class="listitem">
<p>对于需要迁移到新集群的每一个索引：</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
用合适的 mapping 和 setting 创建一个索引。

将 <code class="literal">refresh_interval</code> 设置为 <code class="literal">-1</code>，将 <code class="literal">number_of_replicas</code> 设置为 <code class="literal">0</code>，以便更快地重新索引。
</li>
<li class="listitem">
<p>
使用 <a class="xref" href="docs-reindex.html" title="Reindex API"><code class="literal">reindex</code> API</a> 将文档从远程索引拉到新的 7.7.1 索引：
</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _reindex
{
  "source": {
    "remote": {
      "host": "http://oldhost:9200",
      "username": "user",
      "password": "pass"
    },
    "index": "source",
    "query": {
      "match": {
        "test": "data"
      }
    }
  },
  "dest": {
    "index": "dest"
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/75.console"></div>
<p>
如果你是通过将 <code class="literal">wait_for_completion</code> 设置为 <code class="literal">false</code> 在后台运行重新索引作业，则重新索引请求将返回一个 <code class="literal">task_id</code> ，你可以使用 <a class="xref" href="tasks.html" title="Task management API">task API</a> 来监视重新索引作业的进度：<code class="literal">GET _tasks/TASK_ID</code>。
</p>
</li>
<li class="listitem">
当重新索引作业完成时，将 <code class="literal">refresh_interval</code> 和 <code class="literal">number_of_replicas</code> 设置为所需的值(默认设置为 <code class="literal">30s</code>和 <code class="literal">1</code>)。
</li>
<li class="listitem">
一旦重新索引完成，新索引的状态为 <code class="literal">green</code>，你就可以删除旧索引。
</li>
</ol>
</div>
</li>
</ol>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="reindex-upgrade-inplace.html">« 原地重新索引</a>
</span>
<span class="next">
<a href="search-your-data.html">搜索你的数据 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>